非科班如何通过业余时间自学游戏开发,最终收获腾讯网易offer
游戏开发永远是兴趣排在第一位的。即使被实验室压榨,没有时间,只要有兴趣依旧可以挤出业余时间自学。没有实习,非科班,只要提前做好准备,也是可以拿到很好的offer的。且看这位同学如何通过业余时间自学,并拿到大厂游戏开发的offer~
01
个人情况
我是华科某坑院的本硕学生,非科班生,我想我的经历对一些想要进入计算机领域的非科班生会有一些帮助。我在保研后大四就进入实验室,由于一些原因,不是很喜欢现在的行业,因而很早就决定转行。
因为有一些编程能力,当时随便接触了一些web开发、游戏开发、机器学习等东西,发现游戏开发比较有乐趣,就决定从事游戏开发行业了。接下来的介绍也基本与游戏行业相关。
02
学习经历
我在研一时候就开始自学unity与c#开发,当时是跟着sikiedu上的免费课程学习,白天在实验室搬砖,晚上就自学。坚持了挺长时间,之后自认为是可以用unity写一个比较简单的demo。
以当时的水平,应该可以进个小游戏公司。但对于腾讯、网易这类公司,只会unity是不够的,面试官们也会考察计算机基础的知识点,这一点在它们的招聘官网上就可以看出来。
腾讯游戏客户端校招要求
网易游戏研发校招要求
另外米哈游、吉比特等众多比较出色的游戏公司,也表明了对校招生基础的要求。关注这些的时候,我也是研二,还有时间。所以接下来我就专注于计算机基础课程的补牢。
对于各类计算机基础课程,我都过了一遍教材,同时在b站上搜了对应的视频课程,这里推荐王道考研系列的视频教程,讲解清晰、深入浅出,在学过相关教材和视频课程后,再刷一些面经,基本上面试里问的计算机基础相关的问题就可以从容应对了。
当然,对于有志于从事游戏研发行业的程序员,我都会强烈推荐c++这一门编程语言,即便你对unity、c#的开发掌握得很熟练,都绕不开c++。
这是从腾讯游戏学院的一个视频课程中截下来的图,可以看出,如果只会使用unity和c#,那么你的工作可能都只能停留在gameplay层,只有掌握了c++和directx/opengl后,才能接触游戏引擎方面的开发。
C++方面,我阅读过的书目有《c++primer plus》《c++ primer》《effective c++》《深度探索对象模型》,最后一本是侯捷老师翻译的,我个人认为比较晦涩,找了一些相关的博客来进一步理解,但这本书有助于理解c++中对象在内存中的分布情况和程序运行时对象初始、析构等行为的具体执行过程等,能帮助你加深对c++语言的理解。
对于有志于游戏研发的同学来讲,我还推荐你们接触并学习一些图形学的知识,这里推荐冯乐乐的《unity shader入门精要》,能掌握这本书的内容,基本上就可以应对游戏客户端面试中可能被问到的图形学问题了。
同时,我也建议你们涉足一些绘图引擎,比如directx或者opengl,我自己学的是红龙书12,可以说是相当难了hhh,至今有很多知识点不太懂。
不过在看完这本书后,我对整个绘图过程中,cpu执行的任务内容、gpu执行的任务、gpu中的资源的概念等情况,都有了一个大致的了解。我也相信一定程度上掌握绘图引擎,会是你面试时候的加分项。
unity中使用shader完成的卡通效果
03
项目经历
本来是打算在研二的时候模仿b站上的视频自制unity的demo(b站上有很多的unity自制demo,如果没有项目的话可以仿照完成一个类似的)。
但是在4月和6月的时候,网易和腾讯分别举办了游戏demo竞赛(相比于模仿b站视频自制demo,更推荐参赛),我便参加了这两次比赛,参加比赛比自制demo的好处就在于不用自己准备美术、音效、策划文案等资源,可以更专注于游戏开发,如果能拿到出色奖项,更可能直接获得offer,或者成为简历上的亮点。
假若你不能去实习,那么强烈推荐你参加这些demo竞赛。
在腾讯minigame竞赛中的作品截图
04
秋招历程
九月初网易互娱一面,九月二十八网易互娱二面,九月三十网易互娱offer。
十月底腾讯面试。十一月初腾讯offer。
中间夹杂了一些其它公司的面试,但都没有太关注。
我的秋招感觉没有很难,大概是准备做得比较充分吧,所以就不总结分享了。
学习资料总结
Unity:线上学习sikiedu的免费课程
C#:线上学习sikiedu的免费课程
C++:《c++ primer plus》《c++ primer》《effectivec++》《深度探索对象模型》
图形学:《3d数学基础:图形与游戏开发》《unity shader入门精要》
操作系统、计算机网络、计算机组成原理:普通的教材+b站王道考研视频教程即可
DirectX:《Introduction to 3DGame Programming with DirectX12》(这本书难度比较大,也可以学directx11或者opengl)
数据结构、算法:《算法导论》(这个大部头只是翻了一遍)、《大话数据结构》
应付笔、面试:《剑指offer》《王道程序员求职宝典》,另外刷了一百多道leetcode题,刷完就忘了hhhhh,不过还是刷了很多面经来应付面试的。
最后
由于我很早就决心转行,所以我用来学习游戏开发内容的时间也比较充足,当时也比较刻苦,基本上周一到周六晚上、周日整天都在学这些(实验室996hhhhh)。一个月也就休一天吧,不过我觉得游戏开发、编程开发还比较有趣,逻辑跑通了很有成就感,所以就坚持下来了,现在也拿到了满意的offer。
所以我也建议如果非科班生想要转行,都要尽早下定决心并开始准备,时间越多准备就可以越充分。如果时间不是很充足,建议是先准备一些可以快速完成的项目(使用unity开发一些小游戏等)来填充简历,然后博客或牛客上搜一些面经分享,复习常见的知识点,如果有时间的话,我仍然建议阅读一些大部头,这会帮助到你未来的工作。
最后,不管是科班生还是非科班生,希望大家都能收获满意的offer,为学生时代画上圆满的句号!
本文为来源业余码农,转载请联系本公众号获得授权。
推荐阅读(点击下方链接即可阅读)